package com.dl.dao;

import com.dl.pojo.Permission;
import com.dl.pojo.Role;
import com.dl.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface UserMapper {

    //查询总数
    Integer getTotal();

    //根据关键字查询总数
    Integer getTotalByKey(String keyWord);

    //增加
    Integer addUser(User user);

    //删除
    Integer deleteUser(int id);

    //更新
    Integer updateUser(User user);

    //更新用户信息
    Integer updateUserInfo(Map<String, String> map);

    //更新用户状态信息
    Integer updateStatusByID(@Param("id") int id, @Param("status") int status);

    //更新用户角色信息
    Integer updateRoleByID(@Param("roleID") int roleID, @Param("userID") int userID);

    //根据用户id查询用户
    User queryUserById(int id);

    //普通登录
    User queryUser(@Param("username") String username, @Param("password") String password);

    //shiro登录
    User queryUserByName(@Param("username") String username);

    //根据用户名查询用户角色信息
    List<Role> findRolesByUsername(String username);

    //根据用户id查询用户权限集合
    List<Permission> findPermissionsByUsername(String username);

    //根据角色id查询用户权限集合
    List<Permission> findPermissionsByRolesID(String roleID);

    //查询全部用户
    List<User> queryAllUser();

    //分页查询
    List<User> queryUserByLimit(Map<String, Integer> map);

    //根据关键字模糊查询
    List<User> queryUserByKey(Map<String, Object> map);

}
